As is known in the art, large host computers and servers (collectively referred to herein as “host computer/servers”) require large capacity data storage systems. These large computer/servers generally includes data or storage processors, which perform many operations on data introduced to the host computer/server through peripherals including the data storage system. The results of these operations are output to peripherals, including the storage system.
One type of data storage system is a magnetic disk storage system. Here a bank of disk drives and the host computer/server are coupled together through an interface. The interface includes “front end” or host computer/server controllers (or directors or storage processor) and “back-end” or disk controllers (or directors or storage processor). The interface operates the controllers (or directors or storage processor) in such a way that they are transparent to the host computer/server. That is, data is stored in, and retrieved from, the bank of disk drives in such a way that the host computer/server merely thinks it is operating with its own local disk drive. The data passes through the storage processor
The interface may also include, in addition to the host computer/server controllers (or directors or storage processor) and disk controllers (or directors or storage processor), addressable cache memories. The cache memory is a semiconductor memory and is provided to rapidly store data from the host computer/server before storage in the disk drives, and, on the other hand, store data from the disk drives prior to being sent to the host computer/server. The cache memory being a semiconductor memory, as distinguished from a magnetic memory as in the case of the disk drives, is much faster than the disk drives in reading and writing data.
As is also known in the art, the interface may be required to store data that is still “in-flight” from a host network intended for storage onto its hard-drive array in the event of a power failure. This “in-flight” data normally flows through a volatile write cache within the system's main memory. This write cache provides a high-level of network performance. If the system encounters a power loss, the write cache data that has not been committed to the hard-drive array would be lost, resulting in a data storage loss of valuable customer data.
In one system a Battery Backup Unit (BBU) is provided. When the interface senses a loss of main power, the on-board Battery Backup Unit (BBU) provides enough energy to keep a low-power level “data vaulting” process running on the interface. This low-power “data vaulting” process enables the interface to store the “in-flight” write cache data into a non-volatile storage medium for later recovery. BBU testing in accordance with the prior art is usually performed by periodically switching to the battery pack. For example, in order for this write cache to remain enabled during the interface's operation, the BBU must be trusted to have enough energy storage to be able to power the write-cache data vaulting operation through to completion. In order for the interface to trust the BBU, the BBU must be periodically tested in between its normal charging cycles. The normal method to test a battery unit is to provide a sufficient load, and measure its output voltage. This would risk interface failure should the batteries not have enough power storage. More particularly, loading the BBU with a CPU director Module, as would be done with the vaulting operation, would be too risky during normal interface operation.